// 1.导入koa-router
var Router = require('koa-router');
// 2.创建一个router对象
var router = new Router();

var mongoose = require('mongoose');
// 创建用户数据结构, 就是一条数据,拥有哪些字段(属性)
var userSchema = mongoose.Schema({
    headUrl: '',
    name: '',
    age:{
        type:Number
    },
    profession: '',
    word: '',
});
// 创建一个model(模型), 模型用来跟数据库进行通信的
var userModel = mongoose.model('User',userSchema);

// 3.创建路由
// 查询数据
router.get('/getList',async function(ctx) {
    try {
        var user=await userModel.find()
        // 把信息发送给前端
        ctx.body={
            code:'666',
            msg:'sucess',
            data:user/* 返回的数据 */
        }
    } catch (error) {/* 失败信息 */
        ctx.body={
            code:'500',
            msg:'fail',
            error:error
        }
    }
    // ctx.body = '查看英雄';
})
router.post('/inster', async function(ctx) {
    try {
        // ctx.query/* get请求 */
        // 获取前端传进来的请求参数
        var data = ctx.request.body;
        // 创建model
        var model = new userModel(data);
        // 把数据存入数据库
        var result = await model.save();
        ctx.body = {
            code: 666,
            msg: '添加成功',
            result: result
        };
    } catch (error) {
        ctx.body = {
            code: 500,
            msg: '添加失败',
            error: error
        };
    }
})
router.get('/detail', async function(ctx) {
    var id=id=ctx.query._id
    var data=id=ctx.query
    if (!id) {
        ctx.body = {
            code: 601,
            msg: '缺少_id'
        }
        return false;
    }
    try {
        var user=await userModel.findOne({_id:id})
        if(!user){
            ctx.body={
                code:602,
                msg:'没有找到该数据'
            }
        }else{
            ctx.body={
                code:666,
                msg:'sucess',
                data:user
            }
        }
    } catch (error) {
        ctx.body={
            code:500,
            msg:'请求失败',
        }
    }
})
router.get('/undata',async function(ctx){
    try {
        var id=ctx.query._id
        var data=ctx.query
        var newData=await userModel.updateOne({_id:id},data)
        ctx.body={
            code:666,
            msg:'修改成功',
            data:newData
        }
    } catch (error) {
        ctx.body={
            code:500,
            msg:'修改失败',
            error:error
        }
    }
})
router.all('/delete',async function(ctx){
    try {
        var id=ctx.query._id
        await userModel.deleteOne({_id:id})
        ctx.body={
            code:666,
            msg:'删除成功',
        }
    } catch (error) {
        ctx.body={
            code:500,
            msg:'删除失败',
            error:error
        }
    }
})

// 导出路由对象
module.exports = router;